import { ResultType, ResultUtil } from '@xtail/result'
import { SSHResultType } from '../types'

/**
 * 根据 SSH 结果对象生成 {@link ResultType} 结果对象
 *
 * @param {SSHResultType} res SSH 结果对象
 * @param {boolean} msgWithServer 在生成的 {@link ResultType} 结果对象的 message 字段中，是否包含服务器的 IP 或域名，默认值 true
 * @returns {ResultType} 生成的 {@link ResultType} 结果对象
 */
export const genResultBySSHRes = (
  res: SSHResultType,
  msgWithServer: boolean = true
): ResultType => {
  return ResultUtil.genResult({
    status: res.success,
    message: msgWithServer ? `${res.message}(${res.server})` : res.message,
    data: res.detail
  })
}

export type GenResultBySSHResType = typeof genResultBySSHRes
